package com.nineclock.system.controller;

import com.nineclock.api.system.controller.SysCompanyContactConfigControllerApi;
import com.nineclock.common.entity.Result;
import com.nineclock.dto.SysCompanyContactConfigDTO;
import com.nineclock.system.service.SysCompanyContactConfigService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 通讯录控制层
 */
@RestController
@RequestMapping("/companyContact")
public class SysCompanyContactConfigController implements SysCompanyContactConfigControllerApi {
    @Autowired
    SysCompanyContactConfigService service;
    @PostMapping("/config")
    @Override
    public Result addCompanyContactConfig(@RequestBody SysCompanyContactConfigDTO sysCompanyContactConfigDTO) {
        service.addCompanyContactConfig(sysCompanyContactConfigDTO);
        return Result.success();
    }
    // 查询并初始化

    @Override
    @GetMapping("/config")
    @PreAuthorize("hasRole('ADMIN')")
    public Result<List<SysCompanyContactConfigDTO>> findCompanyContactConfig() {
        List<SysCompanyContactConfigDTO> list = service.findCompanyContactConfig();
        String name = SecurityContextHolder.getContext().getAuthentication().getName();
        System.out.println(name);
        return Result.success(list);
    }

    // 修改企业通讯录状态
    @PutMapping("/config/{id}/{status}")
    @PreAuthorize("hasAuthority('user_save')")
    @Override
    public Result updateCompanyContactConfigStatus(@PathVariable("id") Long id, @PathVariable("status") short status) {
        service.updateCompanyContactConfigStatus(id, status);
        return Result.success();
    }
    @DeleteMapping("/config/{id}")
    @Override
    public Result deleteCompanyContactConfigById(@PathVariable("id") Long id) {
        service.deleteCompanyContactConfigById(id);
        return Result.success();
    }
}
